18. If 和布尔逻辑
控制语句
现在,你已经知道如何声明变量和编写函数了,你在 C++ 语言学习方面已经取得了良好进展。
到目前为止,你接触的程序相对都比较简单。你需要控制语句,才能编写更复杂的程序。像 if 和 for 之类的控制语句是许多编程语言的基础。它们允许你确定运行代码语句的时间和频率。
在本节中,你将学习使用 C++ 的 if 语句和相关的布尔逻辑使用。
下一节将介绍
while
和
for
循环。最后,我们会讲解** switch **语句。Python 有和 *
if
、
while
* 和
for
等价的语句,但没有
switch
语句。
学习控制语句之后,你可以编写更复杂的 C++ 程序。
Python vs. C++ If
下面是一组 Python 中 if 语句与 C++ 中等价语句的示例。
你会看到逻辑结构完全相同,但语法略有不同。你可以把下面的代码看作交通灯分类程序的一部分,它会告诉车辆当前
交通信号的颜色。
C++ 中的通用 if 语句如下所示:
if (<some criteria>) {
statement_1;
statement_2;
.... etc
}
else if (<some other criteria>) {
statement_1;
statement_2;
.... etc
}
else (<some other criteria>) {
statement_1;
statement_2;
.... etc
}
布尔逻辑
要让 if 语句生效,你需要布尔逻辑。布尔逻辑在 Python 和 C++ 中的实现方式相同;有些语法是完全相同的,有些稍有不同。
下面是一个表格,显示了两种语言的比较运算符:
运算符 | Python | C++ |
---|---|---|
等于 | == | == |
不等于 | != | != |
大于 | > | > |
小于 | < | < |
大于等于 | >= | >= |
小于等于 | <= | <= |
是的,两种语言中的比较运算符的确完全一样!
那么,逻辑运算符 and 、 or 以及 not 呢?
它们在两种语言中不同:
运算符 | Python | C++ |
---|---|---|
and | and | && |
or | or | || |
not | not | ! |
C++ 中的 or 运算符由两个竖线字符表示。在英文键盘上,您可以在回车键上方找到竖线键。
小测试
运算符
QUIZ QUESTION: :
将定义与 C++ 运算符匹配
ANSWER CHOICES:
Definition |
C++ 中的运算符 |
---|---|
not |
|
{} |
|
<= |
|
?? |
|
% |
|
or |
|
== |
|
< |
|
|| |
|
and |
|
! |
|
|
|
&& |
SOLUTION:
Definition |
C++ 中的运算符 |
---|---|
<= |
|
== |
|
< |
|
|| |
|
! |
|
|
|
&& |
游乐场
这里是游乐场,你可以编写自己的 if 语句。在代码注释中,你会看到几条关于代码编写的建议。solution.cpp 文件中提供了参考答案,可以和你自己的代码对比学习。
Start Quiz:
#include <iostream>
int main() {
/*
* TODO: Use this as a playground for writing if, else if and else statements
* To get you started here, are some ideas:
*
* 1. Create an integer variable and a set of if, elseif and else statements that
* output whether the number is positive or negative.
*
* 2. Create a character variable containing 'a' for acceleration, 'b' for braking,
* 'p' for parked, or 'n' for neutral and outputs whether or not the vehicle is accelerating, braking,
* parked or in neutral.
*
* Practice Using Boolean Logic
*
* You can see an example solution in the solution.cpp file
*/
return 0;
}
#include <iostream>
int main() {
/*
* TODO: Use this as a playground for writing if, else if and else statements
* To get you started here, are some ideas:
*
* 1. Create an integer variable and a set of if, elseif and else statements that
* output whether the number is positive or negative.
*
* 2. Create a character variable containing 'a' for acceleration, 'b' for braking,
* 'p' for parked, or 'n' for neutral and outputs whether or not the vehicle is accelerating, braking,
* parked or in neutral.
*
* Practice Using Boolean Logic
*
* You can see an example solution in the solution.cpp file
*/
int x = 5;
if (x > 0) {
std::cout << "Positive Number" << std::endl;
}
else if (x < 0) {
std::cout << "Negative Number" << std::endl;
}
else {
std::cout << "Zero" << std::endl;
}
char status = 'a';
if (status == 'a') {
std::cout << "Accelerating" << std::endl;
}
else if (status == 'b') {
std::cout << "Braking" << std::endl;
}
else if (status == 'p') {
std::cout << "Parking" << std::endl;
}
else if (status == 'n') {
std::cout << "Neutral" << std::endl;
}
else {
std::cout << "Unknown" << std::endl;
}
return 0;
}